| автор перевода - Штрек - flash-club.ru | Предыдущая | Следующая | Оглавление |
Flash Player 7 (7.0.19.0)
System.security.loadPolicyFile(url:String): Void
url Строка; URL с которого может быть загружен междоменный
сертификат безопасности.
Ничего.
Метод; загружает файл с междоменным сертификатом безопасности, размещенном
по адресу, указанному в параметре url. Flash Player использует
этот файл, как механизм разрешения, с использованием которого, Flash фильм загружает
данные с других серверов, за исключением своего.
Flash Player 7.0.14.0 пытался обнаружить файл с сертификатом только в одном месте: /crossdomain.xml на сервере, с которого, загружающий данные, запрос был сделан. Для попытки подключения XMLSocket, Flash Player 7.0.14.0 искал в /crossdomain.xml на HTTP сервере с портом 80, в субдомене к которому производилась попытка подключения XMLSocket. Flash Player 7.0.14.0 (и все более ранние плееры) также ограничивает подключение XMLSocket портами 1024 и выше.
С добавлением System.security.loadPolicyFile(),
Flash Player 7.0.19.0 может загрузить файлы с сертификатами безопасности с произвольного
адреса, как показано в следующем примере:
System.security.loadPolicyFile("http://foo.com/sub/dir/pf.xml");
По этой причине, Flash Player загружает файл с указанного URL. Любые разрешения, указанные в сертификате безопасности, применимы к тому же уровню или ниже, в виртуальной директории иерархии сервера. Следующий код продолжает предыдущий пример :
loadVariables("http://foo.com/sub/dir/vars.txt") //допустимо loadVariables("http://foo.com/sub/dir/deep/vars2.txt") // допустимо loadVariables("http://foo.com/elsewhere/vars3.txt")// не допустимо
Вы можете загрузить любое количество файлов безопасности, используя loadPolicyFile().
При рассмотрении запроса, который требует сертификата безопасности, Flash Player
ожидает завершения всех загрузок файлов безопасности, прежде чем дать отрицательный
ответ о возможности загрузки данных. Если никакой, из загруженных файлов безопасности,
указанных в loadPolicyFile() не разрешает загрузку данных, Flash
Player пытается обратиться к файлу, расположенному по умолчанию в /crossdomain.xml.
Использование протокола xmlsocket, с определённым номером порта
, позволяет вам загружать файлы безопасности непосредственно с сервера XMLSocket,
как показано в следующем примере :
System.security.loadPolicyFile("xmlsocket://foo.com:414");
Этот код предлагает Flash Player загрузить файл, с сертификатом безопасности,
с определённого узла и порта. Может использоваться любой порт, не только порт
1024 и выше. После установления подключения с указанным портом, Flash Player
передаёт <cross-domain-request/>, заканчивающийся байтом
null. Сервер XMLSocket может быть конфигурирован таким образом,
чтобы передавать файлы безопасности и осуществлять обычное XMLSocket подключение
через один порт, при этом сервер ожидает <cross-domain-request/>
запрос, до передачи файла безопасности. Сервер может быть настроен таким образом,
чтобы принимать файлы безопасности на отдельный порт, отличном от порта с нормальным
соединением, при этом, он может послать файл безопасности, как только соединение
с портом файлов безопасности будет установлено. Сервер должен послать нулевой
байт в конце отправки файла безопасности и после этого может прервать подключение;
если сервер не прерывает подключение, Flash Player сделает это, после получения
пустого указателя - байт null.
Файл безопасност,и обсдуживаемый через сервер XMLSocket, имеет тот же самый
синтаксис, что и любой другой файд безопасности, за исключением того, что должны
быть определены порты, через которые доступ разрешен. Когда файл безопасности
работает с портом ниже, чем 1024, это означает, что доступ к файлам безопасности
с портов 1024, и выше, также разрешен. Разрешенные порты определяются в атрибуте
"to-ports" тега <allow-access-from>.
Возможны отдельные номера портов, диапазоны портов, и подстановочные знаки.
В следующем примере показан файл безопасности сервера XMLSocket :
<cross-domain-policy> <allow-access-from domain="*" to-ports="507" /> <allow-access-from domain="*.foo.com" to-ports="507,516" /> <allow-access-from domain="*.bar.com" to-ports="516-523" /> <allow-access-from domain="www.foo.com" to-ports="507,516-523" /> <allow-access-from domain="www.bar.com" to-ports="*" /> </cross-domain-policy>
Файл безопасности, полученный с адреса по умолчанию —/crossdomain.xml HTTP сервера с портом 80, неявно разрешает доступ ко всем портам 1024 и выше. Возможность отыскать файл безопасности для разрешения подключения через сервер XMLSocket на любом другом сервере HTTP исключена; размещение файлов безопасности для XMLSocket, возможно только на XMLSocket сервере.
Так как, возможность подключения к портам ниже 1024 нова, файл безопасности,
загруженный с loadPolicyFile(), должен всегда разрешать доступ
к ним, даже когда фильм соединяется с собственным субдоменом.
| Посмотреть комментарии LiveDocs | Предыдущая | Следующая | Оглавление | |